Skip to main content

Redis et Memcashed

Améliorer les Performances avec Redis

Si vous avez remarqué une baisse de performances au fil du temps sur les sites web dynamiques que vous avez développés avec Php et MySQL, Redis peut être la solution. Redis est un système de mise en cache open source conçu pour accélérer le chargement des pages d'un site web.

Qu'est-ce que Redis?

Redis est une base de données en mémoire rapide et flexible. Son utilisation principale est la mise en cache des données et des objets en mémoire, réduisant ainsi le temps d'accès aux données, notamment pour les sites web hébergés dans des bases de données dynamiques.

Pourquoi Redis?

Si votre site web a un trafic intense et une charge importante sur la base de données, Redis peut significativement soulager cette charge. Il fonctionne en mettant en cache les données fréquemment utilisées, permettant ainsi d'accéder rapidement à ces informations sans interroger constamment la source de données externe.

Installation de Redis

Pour commencer, installez Redis sur votre serveur avec la commande suivante :

sudo apt install redis

Une fois l'installation terminée, utilisez redis-cli pour accéder à l'interface en ligne de commande de Redis :

redis-cli    #ou   
redis-cli -h 127.0.0.1 -p 6379

Principaux Commandes Redis

  • set toto 27 EX 20 : Les données disparaissent au bout de 20 secondes.
  • set toto 27 PX 5000 : Les données disparaissent au bout de 5 secondes. (Note : "ms" signifie millisecondes, "PX" est en millisecondes et "EX" est en secondes)
  • get toto : Récupérer la valeur associée à la clé "toto".
  • keys * : Liste toutes les clés Redis.

Sécurité de Redis

Il est crucial de protéger le service Redis en limitant l'accès. Il doit être configuré en tant que service local et ne doit pas être accessible publiquement, car il est vulnérable aux attaques. Il ne doit en aucun cas être utilisé directement dans l'application frontend.

Exemple Pratique

Développez une API sur votre serveur VM Cloud qui écoute sur le port 8080 et compte le nombre d'appels effectués par adresse IP source. Utilisez le langage de programmation de votre choix.

  • Extrayez l'adresse IP source de la demande.
  • Créez ou incrémentez une entrée Redis nommée d'après l'adresse IP demandée à chaque appel.
  • Retournez la valeur après chaque incrémentation.

Voici un exemple en utilisant Flask (Python) :

from flask import Flask, request
import redis

app = Flask(__name__)
redis_client = redis.StrictRedis(host='localhost', port=6379, db=0)

@app.route('/', methods=['GET'])
def count_calls():
source_ip = request.remote_addr # Obtenir l'adresse IP de la requête

# Incrémenter ou créer le nombre de requêtes associé à l'adresse IP dans Redis
calls = redis_client.incr(source_ip)

return f"Nombre d'appels depuis {source_ip}: {calls}"

if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080)

redis-cli
KEYS *
get ip

Officiel Documantation
Redis Nedir? Nasıl Kurulur? | Hostixo Blog
Redis nedir